home *** CD-ROM | disk | FTP | other *** search
- PROGRAM ISTLY
-
- INTEGER IODSRC,IODCMT,IODTRE,IODSYM,IODCI,NERROR,NWARN,
- + SRCPTH(134),CMTPTH(134),TREPTH(134),
- + SYMPTH(134),CIPTH(134)
-
- INTEGER YPARSE,GETARG,OPEN,CREATE
- EXTERNAL YPARSE,ZINIT,ZMESS,ERROR,ZQUIT,GETARG,OPEN,CREATE,
- + ZCHOUT,ZPTINT,PUTCH
-
- CALL ZINIT
- CALL INISTR
- CALL INISYM
- CALL INITRE
-
- IF (GETARG(1,SRCPTH,81).EQ.-100) CALL NAMES(1,SRCPTH)
- IF (GETARG(2,CMTPTH,81).EQ.-100) CALL NAMES(2,CMTPTH)
- IF (GETARG(3,TREPTH,81).EQ.-100) CALL NAMES(3,TREPTH)
- IF (GETARG(4,SYMPTH,81).EQ.-100) CALL NAMES(4,SYMPTH)
- IF (GETARG(5,CIPTH,81).EQ.-100) CALL NAMES(5,CIPTH)
-
- IODSRC=OPEN(SRCPTH,0)
- IF (IODSRC.EQ.-1) CALL ERROR('Source File Open Failed.')
- IODCMT=CREATE(CMTPTH,1)
- IF (IODCMT.EQ.-1) CALL ERROR('Comment File Create Failed.')
- IODTRE=CREATE(TREPTH,1)
- IF (IODTRE.EQ.-1) CALL ERROR('Tree Path Create Failed.')
- IODSYM=CREATE(SYMPTH,1)
- IF (IODSYM.EQ.-1) CALL ERROR('Symbol table Create Failed.')
- IODCI=CREATE(CIPTH,1)
- IF (IODCI.EQ.-1) CALL ERROR('Comment index Create Failed.')
-
- IF (YPARSE(IODSRC,IODCMT,IODSYM,IODCI,NERROR,NWARN).EQ.0) THEN
- CALL ZYSOUT(IODSYM)
- CALL ZYTOUT(IODTRE)
- IF (NERROR+NWARN.EQ.0) THEN
- CALL ZMESS('[ISTLY Normal Termination].',1)
- CALL ZQUIT(-2)
- ELSE IF (NERROR.EQ.0) THEN
- CALL ZCHOUT('[ISTLY Terminated, .',1)
- CALL ZPTINT(NWARN,1,1)
- CALL ZCHOUT(' war'//'ning.',1)
- IF (NWARN.GT.1) CALL PUTCH(115,1)
- CALL ZMESS('].',1)
- CALL ZQUIT(-1002)
- ELSE
- CALL ZCHOUT('[ISTLY Terminated, .',1)
- CALL ZPTINT(NERROR,1,1)
- CALL ZCHOUT(' er'//'ror.',1)
- IF (NERROR.GT.1) CALL PUTCH(115,1)
- CALL ZMESS('].',1)
- CALL ZQUIT(-1)
- END IF
- ELSE
- CALL ERROR('[ISTLY Fatal Error -- Terminated].')
- END IF
-
- END
- C ----------------------------------------------------------------------
- C
- C N A M E S - Input the pathname of a required file from stdin
- C
-
- SUBROUTINE NAMES(NUMBER,PATH)
- INTEGER NUMBER,PATH(*)
-
- INTEGER JUNK,PROMPT(23,5)
-
- SAVE PROMPT
-
- INTEGER ZGTCMD
- EXTERNAL ZGTCMD,ZPRMPT
-
- C "Input source file: "
- C "Output comment file: "
- C "Output parse tree: "
- C "Output symbol table: "
- C "Output comment index: "
-
- DATA (PROMPT(I,1),I=1,20)/73,110,112,117,116,32,115,
- +111,117,114,99,101,32,102,105,108,101,58,
- +32,129/,
- + (PROMPT(I,2),I=1,22)/79,117,116,112,117,116,32,
- +99,111,109,109,101,110,116,32,102,105,108,101,
- +58,32,129/,
- + (PROMPT(I,3),I=1,20)/79,117,116,112,117,116,32,
- +112,97,114,115,101,32,116,114,101,101,58,32,
- +129/,
- + (PROMPT(I,4),I=1,22)/79,117,116,112,117,116,32,
- +115,121,109,98,111,108,32,116,97,98,108,101,
- +58,32,129/,
- + (PROMPT(I,5),I=1,23)/79,117,116,112,117,116,32,
- +99,111,109,109,101,110,116,32,105,110,100,101,120,
- +58,32,129/
-
- CALL ZPRMPT(PROMPT(1,NUMBER))
- JUNK=ZGTCMD(PATH,0)
-
- END
-